import random
import pygame
from pygame.sprite import Sprite
import constants


class DoubleBulletSupply(Sprite):
    """双发子弹补给类"""

    # 补给的偏移量
    offset = 5

    def __init__(self, window):
        super().__init__()
        # 加载图片资源
        self.image = pygame.image.load("images/double_bullet_supply.png")
        self.window = window
        # 获取补给的矩形
        self.rect = self.image.get_rect()
        # 获取window的矩形
        self.window_rect = self.window.get_rect()
        # 设置补给的初始位置
        self.rect.bottom = self.window_rect.top
        self.rect.left = random.randint(0, self.window_rect.width - self.rect.width)

    def update(self):
        """更新补给的位置"""
        self.rect.bottom += DoubleBulletSupply.offset

    @staticmethod
    def play_get_supply_sound():
        """播放获得补给的声音"""
        # 加载补给的音频
        supply_sound = pygame.mixer.Sound("sounds/bullet_supply_collide.wav")
        # 设置音量
        supply_sound.set_volume(constants.GET_SUPPLY_VOLUME)
        # 播放声音
        supply_sound.play()
